package com.ylr.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylr.domain.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ylr.mapper.SysPrivilegeMapper;
import com.ylr.mapper.SysRoleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;

import java.io.Serializable;

public interface SysRoleService extends IService<SysRole> {


//    @Autowired
//    private SysRoleMapper sysRoleMapper;
//
//    @Autowired
//    private SysPrivilegeMapper sysPrivilegeMapper ;
//
//
//    /**
//     * 根据 ID 查询
//     *
//     * @param id 主键ID
//     */
//    @Override
//    public SysRole getById(Serializable id) {
//        SysRole sysRole = super.getById(id);
//        sysRole.setPrivileges(sysPrivilegeMapper.selectByRoleId(sysRole.getId()));
//        return sysRole;
//    }
//
    /**
     * 判断一个用户是否为超级的管理员
     *
     * @param userId
     * @return
     */
    boolean isSuperAdmin(Long userId);

    Page<SysRole> findByPage(Page<SysRole> page, String name);


//    @Override
//    public boolean isSuperAdmin(Long userId) {
//        // 当用户的角色code 为：ROLE_ADMIN 时，该用户为超级的管理员
//        // 用户的id->用户的角色->该角色的Code是否为ROLE_ADMIN
//        String roleCode = sysRoleMapper.getUserRoleCode(userId);
//        if (!StringUtils.isEmpty(roleCode) && roleCode.equals("ROLE_ADMIN")) {
//            return true;
//        }
//        return false;
//    }
//
//    /**
//     * 使用角色的名称模糊分页角色查询
//     *
//     * @param page 分页数据
//     * @param name 角色的名称
//     * @return
//     */
//    @Override
//    public Page<SysRole> findByPage(Page<SysRole> page, String name) {
//        return page(page, new LambdaQueryWrapper<SysRole>().like(
//                !StringUtils.isEmpty(name),
//                SysRole::getName,
//                name
//        ));
//    }
}
